package com.xc.Interceptor;

import com.xc.pojo.Result;
import com.xc.utils.MyJwtUtils;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 自定义的
 * 对比来不用获取URI，判断是否去登录（这个不在这里写）
 */
public class MyLoginInterceptor implements HandlerInterceptor {

    private MyJwtUtils jwtUtils;

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //获取token
        String token = request.getHeader("token");
        //判断是否有效
        //有效就放行，无效就返回前端需要的错误提示
        try {
            jwtUtils.parseToken(token);
            //没报错就就验证通过了，规定返回true就能放行
            return true;
        } catch (Exception e) {
            //报错就是没有验证通过
            Result error = Result.error("NOT_LOGIN");
            //转为JSON字符串，boot的东西有 RestController 注解自动转，这里手动
            return false;
        }
    }
}
